#!/usr/bin/python
# -*- coding: utf-8 -*-\

# Модуль для обновления списка игр

from DbShell import Db
import time, Loader

db = Db()

def storeGameList(gameList, domain):
    cdate = time.strftime("%Y-%m-%d %H:%M:%S")
    for item in gameList:
        print unicode(item['gameName'])
        gameName = unicode(db.escape(item['gameName']))
        q = "INSERT INTO enlab_games (`game_id`,`game_name`,`game_date`,`game_num`,`game_domain`,`game_type`,`game_zone`,`added`)\
        VALUES ('%s','%s','%s','%s','%s','%s','%s','%s')" % (item['gameID'],gameName,item['gameDate'],item['gameNumber'],domain,item['gameType'],item['gameZone'],cdate)
        res = db.query(q) # Если страны нет в БД, она добавится, иначе возникнет исключение
        if(res == 0): # Сохранение без ошибок (= новая игра в списке)
            pass
        elif(res == 1062): # Если ошибка дублирования записи: такой элемент уже есть в БД
            pass
        else:
            print "while adding EN_GAME '%s' MySQL report an ERROR № %d" % (item['gameID'],res)
    cdate = time.strftime("%Y-%m-%d %H:%M:%S")
    q = "UPDATE en_domains SET `updated`='%s' WHERE `domain_name`='%s'" % (cdate,domain)
    res = db.query(q)
    return


print "STARTED at %s" % (time.strftime("%Y-%m-%d %H:%M:%S"), )
#domain = "kms.en.cx"

q = "SELECT domain_name FROM en_domains WHERE (`updated` IS NULL) OR (DATEDIFF(NOW(),`updated`) > 3) ORDER BY `updated`"
db.query(q)
domains = db.fetchall()
print "domains list fetched. Total %d." %(len(domains),)
for d in domains:
    domain = d[0]
    print "fetching %s games" % (domain,)
    Loader.fast = False
    games = Loader.getGames(domain)
    storeGameList(games, domain)
    print "%s games saved" % (domain,)

print "FINISHED at %s" % (time.strftime("%Y-%m-%d %H:%M:%S"), )